package com.sparkseries.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 系统日志数据传输对象（DTO），用于在不同层之间传输系统日志相关的数据。
 * 该类包含了系统日志的各种属性信息，如日志级别、类型、操作描述、创建者信息等。
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysLogDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 日志的唯一标识
     */
    private Long id;

    /**
     * 日志的级别，如 INFO、WARN、ERROR 等
     */
    private String logLevel;

    /**
     * 日志的类型，如系统日志、用户日志等
     */
    private String logType;

    /**
     * 日志所记录的操作描述
     */
    private String logOperation;

    /**
     * 创建该日志的用户标识
     */
    private String createBy;

    /**
     * 日志的创建日期和时间
     */
    private Date createDate;

    /**
     * 请求的 URI 地址
     */
    private String requestUri;

    /**
     * 请求所使用的方法，如 GET、POST 等
     */
    private String requestMethod;

    /**
     * 请求所携带的参数信息
     */
    private String requestParams;

    /**
     * 请求的执行时长，单位为毫秒
     */
    private Integer requestTime;

    /**
     * 用户代理信息，通常包含客户端的浏览器和操作系统信息
     */
    private String userAgent;

    /**
     * 执行操作的 IP 地址
     */
    private String remoteAddr;

    /**
     * 请求服务器地址
     */
    private String serverAddr;

    /**
     * 操作结果状态标识
     * 0 表示失败
     * 1 表示成功
     */
    private Integer status;

    /**
     * 当操作出现异常时，记录的异常详细信息
     */
    private String errorInfo;

    /**
     * 日志详细信息
     */
    private String info;
}